// Estimation du nombre pi par méthode de Monte Carlo
// avec amélioration sur le nombre d'essais

// clear;  // efface toutes les variables en mémoire.

N = 10000;
Nboucle = 100;  // répète  Nboucle  fois un tirage de N points
DansCercleTot = 0; // nombre de points trouvés dans le cercle
                   // pour N * Nboucle tirages.

for j=1:Nboucle do
  x = rand(N,1);  // = liste de  N  nombres aléatoires entre 0 et 1
  y = rand(N,1);  // = liste de  N  nombres aléatoires entre 0 et 1

  // Compte le nombre de couples de nombres (x(j), y(j)) tel que
  // x(j)^2 + y(j)^2 < 1,  c'est-à-dire tel que le point
  // de coordonnée  (x(j), y(j)) soit dans le cercle unité.
  DansCercle = sum(x.^2 + y.^2 < 1);
  
  DansCercleTot = DansCercleTot + DansCercle; 
end;

ApproxPi = 4*DansCercleTot/(N*Nboucle);
disp("Approximation de Pi = " + string(ApproxPi));
disp("Erreur = " + string(ApproxPi - %pi));
